Browsing and quality of service features

ABSTRACT

Embodiments are configured to provide browsing and other functionality that can be used to provide viewable data based in part on a current viewable space of a browser interface, but the embodiments are not so limited. In an embodiment, components of a system can operate to communicate viewable data to a browser engine based in part on a configuration of the browser engine and/or a display architecture. In one embodiment, a computing device includes a browser application that can be used to provide data associated with viewable portions of a browser display, wherein the provided data can be used to monetize advertising revenue according to monetization and/or advertising requirements.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of application Ser. No.12/147,361, filed Jun. 26, 2008, entitled Browsing and Quality ofService Features, which is incorporated herein by reference.

BACKGROUND

Computing devices, including mobile communication devices, have becomeessential tools for business and personal uses. Advances in computingpower, communication functionality, and storage capacity continue toenhance the user experience. Handheld and other portable computingdevices can include web browsing, graphics, and video processingcapabilities. The size of many handheld and portable devices tends toresult in a limited space for displaying content. For example, mobilephones and other smart handheld devices include browsers that can beused to access the web and display content of a web page on theassociated displays. Users can use zoom and scrolling controls to viewportions a web page that are difficult to view or not being currentlydisplayed due in part to the limited display area of an associateddisplay.

SUMMARY

This summary is provided to introduce a selection of concepts in asimplified form that are further described below in the DetailedDescription. This summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended asan aid in determining the scope of the claimed subject matter.

Embodiments are configured to provide browsing and other functionalitythat can be used to provide viewable data based in part on a currentviewable space of a browser interface, but the embodiments are not solimited. In an embodiment, components of a system can operate tocommunicate viewable data to a browser engine based in part on aconfiguration of the browser engine and/or a display architecture. Inone embodiment, a computing device includes a browser application thatcan be used to provide data associated with viewable portions of abrowser display, wherein the provided data can be used to monetizeadvertising revenue according to monetization and/or advertisingrequirements.

These and other features and advantages will be apparent from a readingof the following detailed description and a review of the associateddrawings. It is to be understood that both the foregoing generaldescription and the following detailed description are explanatory onlyand are not restrictive of the invention as claimed.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram illustrating an exemplary system that includesbrowsing and other functionality.

FIG. 2 is a flow diagram illustrating an exemplary process of usingbrowsing data.

FIG. 3 is a flow diagram illustrating an exemplary process of usingbrowser data.

FIGS. 4A-4C illustrate an example of providing browsing data associatedwith a viewable space.

FIG. 5 illustrates properties of an advertisement of FIG. 4C.

FIG. 6 illustrates an exemplary networked environment for implementationof various embodiments described herein.

FIG. 7 is a block diagram illustrating an exemplary computingenvironment for implementation of various embodiments described herein.

DETAILED DESCRIPTION

Embodiments are configured to provide browsing and other functionalitythat can be used to provide viewable data based in part on a currentviewable space of a browser interface and/or aspects of a devicedisplay, but the embodiments are not so limited. In an embodiment,components of a system can operate to communicate viewable data to abrowser engine based in part on a configuration of the browser engineand/or a display architecture. For example, viewable data can berequested by the browser engine based in part on a dynamic layout engineusing parameters associated with a display resolution and configurationof a browser window (e.g., full screen vs. browser application resizedto cover only a percentage of a visible display area).

The browser engine can be configured to: operate with a variety ofcommunication protocols to receive and translate information from one ormore servers, display text, images, etc. associated with a viewableportion or space of a browser interface by interpreting instructions ofa requested page and/or from one or more servers; run embedded programs;launch external programs; and/or provide view data for use inadvertising models. For example, advertising charges can be determinedbased in part on whether all or a portion of an advertisement image isrequested by the browser engine when requesting web page data for aviewable portion of a display. A pro-rated or other charge can beassessed against an advertisers account based on a request and/orwhether the advertisement was rendered in the viewable portion of thedisplay.

Browser applications in conjunction with the browser engine and otherapplications can operate to optimize network downloads by using anassociated layout engine to interact with the display subsystem todetermine when images (and other content) would have been renderedcompletely or partially outside and/or inside an application displaywindow. The layout display interaction enables the browser to providenetwork bandwidth efficiency by intentionally avoiding retrieving imagesand other content which fall outside the visible regions. Accordingly,an event driven mechanism can be used to provide quality of serviceattributes for advertisers to target a percentage of the visible imageor display region which can prevent charging advertisers for imagesretrieved and rendered partially visible or outside the visible regionof the display by avoiding requests for the content.

In various embodiments, the browser engine can be configured to requestone or more complete image files or portions of one or more image filesassociated with the current viewable space and/or next viewable space ofa browser display. Embedded web objects, web page scripts, and/or otherfeatures can be used to provide one or more complete image files orportions of one or more image files and/or a load receipt or othercommunication event which for use in providing and monetizing browsingdata. For example, executing scripts provided by the web designer orembedded in the images such as using steganography or displayingembedded objects which retrieve a remote image or images when visible ina current viewable area of a browser window. As further example, thebrowser engine can request/load tiles/zones adjacent and/or contiguousto a current viewable area of a browser window and issue load receiptevents associated with the current viewable pixel and other data. Asdescribed below, the browser engine can cache or otherwise store browserdata associated with a prior viewable portion of the browser display.The browser engine can also operate to publish viewable spaceinformation in conjunction with one or more servers to dynamicallydownload bits/tiles/zones associated with viewable and/or unviewablecontent for use by the browser engine.

In another embodiment, a browser application, which includes executableinstructions, can be used in conjunction with a computing device of acommunication network to browse the network. As an example, a handheldcomputing device, such as a smart phone, etc., can include the browserapplication that a user can use to surf the Internet. The browserapplication can operate to limit data fetch requests to only those whichwould provide viewable data associated with a current viewable portionof a browser interface. That is, the browser application can operate tolimit data requests to browser data that corresponds to a currentviewable portion of the browser interface, but is not so limited.

In yet another embodiment, a user can enable/disable a data miserfeature associated with a browser application. When the data miserfeature is enabled, the browser application can operate to selectivelyrequest/load browser data based in part on a determination of a currentviewable space of a browser interface. In addition to providing browsingfunctionality, the browser application can be used to assist inmonetizing advertising revenue according to monetization and/oradvertising requirements.

In one embodiment, the browser application can operate to communicate atolling event to a serving device once all or a defined portion of anadvertisement has been rendered in the viewable portion of a browserwindow as part of rendering a viewable portion of a web page. Thetolling event can include information associated with how much of theadvertisement was displayed in the browser interface. An advertising orbusiness model can use a tolling event to determine whether anadvertiser should be charged for the display of an advertisement. As anexample, the browser application can communicate information to theserving device associated with dimensions of an ad that were in thevisible pane of the browser, wherein the information can be used bybusinesses and other entities to quantify advertising requirements andcontractual arrangements. Other embodiments are described below.

FIG. 1 is a diagram depicting an exemplary system 100 that includesbrowsing and other functionality. For example, components of the system100 can be used to provide browsing data to a user based in part on acurrent viewable space of a browser interface 111. The system 100 canincorporate protocols, Internet Service Providers (ISPs), NetworkService Providers (NSPs), modems, routers, gateways, and/or othercomponents and functionality to facilitate web browsing to retrieve andinteract with web page and other data. As further example, components ofthe system 100 can be used to provide a quality of service delivery whenmonetizing advertisements as part of an impression or other advertisingbusiness model. As shown in FIG. 1, the system 100 includes a userdevice 102, such as handheld computing/communication device, laptop,desktop, or other computing/communication device.

The user device 102 is in communication with at least one server 104 viaone or more communication networks 106, hereinafter network 106. Thesystem can include a plurality of users, associated devices, systems,and/or other components. The system 100 includes an infrastructure andfunctionality to enable the user 102 to access web pages and otherinformation associated with the network 106. Depending on theconfiguration of a browser interface 111 and/or device display 110,portions of web page may not need to be retrieved by the browser engine108 since the portions are not currently visible to the user.

These portions can be represented by the region(s) of the browserinterface that extends outside the visible display region of the display110. The content is outside the display region through either a virtualdesktop or by content which can be scrolled up/down left/right to viewadditional regions of a page. As described below, content outside thevisible region may not be requested/downloaded by the browser engine108. In an embodiment, the browser engine 108 can operate in conjunctionwith the layout engine 109 to download images and other content based inpart on: (1) the image position on a web page inside the browserapplication (e.g., have to scroll to see it); (2) the position of thebrowser application within the virtual desktop/display portal; and/or(3) whether other windows or applications occlude the visibility of theimages and/or content.

A web page can be described as a number of bits of a data configuredaccording to a defined language, such as hypertext markup language,extensible markup language, etc. Moreover, a web page can be dynamicallygenerated and include markup tags that describe the layout andassociated formatting of the web page. In one embodiment, height andwidth attributes of <IMG> tags and/or other additional tag attributescan be used to indicate a size and quality of service percentage (%)reduction that can be used to monetize impression-based advertisements.For example, a developer or other web designer can use a java script toinsert an ad call into a web page, including what size ad to include(e.g., ad calls associated with 300×400 on the right pane and a topbanner at a 600×100). A web page can include text, graphics and otherimages, video, audio, etc. As described below, images and other contentmay be requested and/or retrieved from the server 104 when they can bedisplayed within the union of the area represented by the browserapplication window and the display (e.g., the current viewable region).

According to an embodiment, and as described further below, the userdevice 102 includes a browser engine 108 that can be used to access webpages and other data from the server 104 and/or other servers andcomponents of the system 100 or some other system. Server 104 can be incommunication with other servers and client devices, according to anetworked computing environment, such as the World Wide Web (WWW) forexample, as well as a private intranet and other systems. The userdevice also includes a display 110 for displaying browser data, whichmay include video, text, graphics, etc. For example, launching thebrowser opens a browser window in the display 110, wherein the browserwindow can include a web page that a user is interacting with based inpart on a submitted uniform resource locator (URL). In some cases, aportion of a web page may be downloaded such that only the portion isdisplayed due in part to the configuration of the browser window,display resolution, pixel count, pixel configuration, and/or a physicalsize of the display. Moreover, a plurality of such browser windows canbe opened and displayed, dependent upon the size and resolution of thedisplay. Further the display may be physically attached to the device110, or be a remote client to the device such as a virtual desktop orremote desktop application.

The user device 102 also includes a memory 112 and a cache 114. Thecache 114 can be used to store web page and other data. For example, thebrowser engine 108 can operate to store viewable web page data in thecache so that portions of the same web page do not have to be downloadedif the user requests viewable portions of the web page on more than oneoccasion. In one embodiment, other web page data, such as web page datathat is contiguous with or adjacent to viewable web page data can berequested from the server 104 and stored in cache 114. For example, aportion of an advertisement image may be viewable to a user based inpart on the current viewable space of a browser window and the browserengine 108 can operate to substitute the unviewable portion of theadvertisement image in the cache 114 as part of a prioritized downloadrequest based in part on a ratio threshold for displaying the image(e.g., if the image will be reduced to a certain %, do not request theimage from server 104 and/or substitute a local image). The user device102 can include other components and functionality and is not limited tothe embodiments and examples described herein.

With continuing reference to FIG. 1, and in accordance with anembodiment, the browser engine 108 can be configured to dynamicallyfetch or request viewable bits of a web page, document, or otherinformation resource based in part on a browser configuration, displayresolution, pixel count, pixel configuration, and/or display size, butis not so limited. As an example, a user can select a data miser featureto configure the browser engine 108 to limit its data requests to webpage data that is associated with a current viewable space of a browserinterface or window. The browser engine 108 can use a window managerand/or other operating system (OS) component or functionality todetermine a size, orientation, and/or location of a window being used toprovide the browser and associated browser controls.

For example, the user device 102 can use an application programminginterface (API) call (e.g., getwinrecviewablerec, etc.) to determine aresolution, size, and/or configuration of a current visible or viewablespace of a browser interface 111. The browser engine 108 can also beconfigured to fetch or request other web page data (e.g., text, images,etc.) that is not within the current viewable space. For example, assumea user has scrolled down to view another portion of a web page. In thisexample, the browser can also request and download other unviewablecontent immediately below or adjacent to the content that was justscrolled to. The browser application can also define an attribute forthe perimeter for the amount of loading for regions off screen. Forexample load up to 250 pixels above and below the visible region.

As described above, a request for web page data can include informationassociated a current viewable space of the browser display or interfacethat can be used to quantify web page data to be included as part of adownload package. Moreover, the browser engine 108 can operate toprovide feedback to the server 104 or other component(s) as to what theuser is currently viewing. The feedback provided by the browser engine108 can be based in part on the current browser interface configuration(e.g., window size, orientation, location, scroll location, etc.)display resolution, pixel information, physical size of the display,etc.).

For example, java script, active server page (ASP), cascading stylesheet (CSS), and other functionality can be used to pass informationbetween the browser engine 108 and the server 104 (e.g., <imgsrc=“/images/resource.asp?w=%img.width%&h=%img.height%&r=0.50”>,-ms-alt-url(fullimage.png, altimage.png, 0.50,-ms-alt-url(fullimage.png, placeholder, 0.50), wherein the “placeholder”key identifies using a built-in image placeholder that the browserprovides when the ratio is satisfactory and/or according to quality ofservice preferences.) Accordingly, in addition to information associatedwith the browser and/or device, the browser engine 108 can provideinformation as to a user's interaction with a browser interface 111.

In one embodiment, CSS functionality can include a property valuedefinitions:

-ms-alt-url(FULLIMG, ALTIMG, RATIO)

-ms-alt-url(fullimage.png, altimage.png, 0.50)

-ms-alt-url(fullimage.png, placeholder, 0.50). As briefly describedabove, the “placeholder” key can be used to identify using a built-inimage placeholder that the browser provides.

As one example for inline on an element:

<div style=“background: -ms-alt-url(fullimage.png, altimage.png,0.50)”>This is some filler text</div>

As another example used within a style sheet file or style element:

div{background: -ms-alt-url(fullimage.png, altimage.png, 0.50);}

Properties that accept the url( )function should also support the-ms-alt-url( ) function.

A list of CSS properties that support url( )include: Background;Background-image; Content; List-style; and, List-style-image.Accordingly, styles can be given information about element and where itis on a page and a determination can be made on how to handle therendering of an associated image. Moreover, ASP/ASPX functionality cancollect the necessary information and pass it to an associated/requestedobject and an ASP page can determine the appropriate information to sendback to the user.

As described, below, and according to one embodiment, browserinformation can be used by the server 104 to generate one or more scriptparameters for use by the browser engine 108 when determining whether torequest and/or load one of a primary or secondary advertisement image.For example, upon receiving resolution and positional information fromthe browser engine 108 as part of an image ASP request, server 104 ASPcan operate to choose an appropriate image file to respond back to thebrowser engine 108. Additionally, the browser engine 108 can operate tosubstitute a locally stored image when a rendering size is below apredefined image size. For example, the browser engine 108 can operateto pull a recognizable logo, independent of visibility size, from memory102 when an otherwise fetched image would be difficult to recognize bythe user (e.g., ALT tags which can be used to transform the text web tosmall screen web).

The browser engine 108 can use a threshold or other parameter(s) todetermine whether to fetch or request an image (or image portion) and/orother object from the server 104. For example, if the browser engine 108determines that it would have to resize an image more than 50%, thebrowser engine 108 may not fetch or request the image. In such a case,the browser engine 108 can substitute a locally cached image or requesta different image to take the place of the requested image. Accordingly,the browser engine 108 can operate to request and download images fromthe server 104 or some other server when a rendering size is at orgreater than a percentage of a defined reduction size. As an example,the browser engine 108 may not request a 1920×1600 image from the server104 that will be scaled down to 10% of the full size if the display sizeis 200×300 and the data miser feature has been selected.

As described briefly above, the browser engine 108 can, in addition torequesting and/or downloading viewable bits of a browser interface 111,provide feedback or other information as to positional and otherconfiguration information associated with a user interaction (e.g.,stylus, finger, vocalized, mouse, etc.) to scroll up or down, left orright, and/or to resize the browser window. For example, due in part toits size, a handheld communication device has a limited display area fordisplaying information, such as text, images, and video associated witha web page. Smaller fonts and display parameters may allow more textualand other information to be displayed in the browser interface 111. Whena user uses a browser to download a web page, an image, such as anadvertising logo, may not be initially viewable to the user. Forexample, handheld device user may have difficulty viewing anadvertisement without using zoom controls, even though an advertisementimage was rendered in the viewable space under these and othercircumstances.

The browser engine 108 can use information associated with a user'sinteraction and/or the browser interface 111 to determine which bits torequest for a viewable portion of a web page associated with a currentviewable space of the browser interface 111. For example, a user mayscroll down and over, or resize a browser window to view an image orread some text, and the browser engine 108, in conjunction with othercomponent(s), can track the user interaction and limit its fetch orrequest to bits that are currently viewable (or newly viewable) to thebrowsing user. Devices with limited screen sizes and communicationbandwidths can use the data miser functionality to reduce the downloadand rendering times by limiting the requesting and fetching of browserdata to the browser data associated with a current viewable space of thebrowser interface 111. If the browser interface 111 is configured suchthat an image or portion thereof, text, and/or other object is notviewable to the current user, the browser engine 108, in the data misermode, can operate to not fetch or request the associated unviewable bitsfrom the server 104.

Accordingly, the browser engine 108 can also use configurationparameters of the browser interface 111 and/or display to furtherdetermine the viewable portion of a web page. For example, the browserengine 108 can determine a text size associated with a browser'sconfiguration when determining whether an advertising charge shouldissue for an advertisement that was displayed in the current viewablespace of the browser interface 111. The browser engine 108 can issue atoll event or some certificate associated with an advertisement chargedepending upon the particular advertisement arrangement. For example, aparticular advertising arrangement may charge advertisers for displayedadvertisements that are displayed above a certain font or displaysize/resolution, displayed for a defined amount of time with anassociated dimension/size/resolution parameter, etc. The browser engine108 can operate to issue the toll event or some other identifyingcertificate under these and other circumstances when requesting and/ordisplaying data within the viewable space of the browser interface 111.

Correspondingly, the browser engine 108 can operate to provideinformation associated with the user experience when determining whetherto charge an advertising provider or other entity for an advertisementassociated with a particular web page or other browsing data. In oneembodiment, a charge can be assessed if the browser engine 108 sends orissues a notification that an advertisement, or a defined portion of theadvertisement, was located in a viewable space of a browser window. Forexample, the resource.asp can be used for ad tracking purposes toproperly account for full or partial renderings of an advertisement.Charges can then be assessed using the associated data. For example, thebrowser engine 108 can operate to communicate a certificate ofvisibility if an advertisement image was requested, downloaded, and/orrecognizably displayed in a current viewable space of a browser window.

As described briefly above, as part of an advertising or business model,the viewable data can be used to determine whether to charge anadvertising entity for an advertising charge. In an embodiment, as partof an impression ad campaign, an advertiser is not charged for anadvertisement if all or a designated portion of the advertisement is notwithin a current viewable space of a browser display. Stateddifferently, an advertiser is not charged for an advertisement as partof an impression ad campaign if all or a certain portion of theadvertisement is not requested or downloaded by the browser engine 108since the user would not have viewed the advertisement based in part onthe current viewable space of a browser display.

As a result, and in accordance with such an embodiment, advertisers arenot charged for advertisements that are unrecognizable to the userand/or not downloaded by the browser engine 108. Moreover, users do nothave to be charged for browser data that is not downloaded and bandwidthmay be more efficiently utilized since viewable browser data can beprioritized as part of downloading operations. For example, if thebrowser engine 108 determines that bits associated with an advertisementare not to be downloaded since they are not in the user's viewablewindow, the advertiser or other entity is not charged.

In one embodiment, an advertiser or other entity is only charged for theadvertisement when the browser engine 108 issues a toll event,certificate, and/or other acknowledging signal to alert the server 104or other device/system that an advertisement is in the viewable space ofa device display. In another embodiment, information can be embedded inan image or other object (e.g., using steganography to embed advertisingcode, messages, etc.) which can be read and used to determine whether tocharge an advertising or other entity. For example, a flash, applet, orother application can be used to fire off an acknowledging signal whenan image, or portion thereof, becomes visible within the display. Thelayout engine 109 can also operate to send an event signal or othersignal associated with the display of an image or object.

In addition to the functionality described above, the browser engine 108can operate to provide information based in part on dimensions of an ad(or portion of the ad) included in the visible or viewable space of thebrowser interface 111. The information can be communicated to the serverand used by business and other systems to use the information forvarious business requirements. In one embodiment, as part of anadvertisement monetization model, the browser engine 108 can operate tocommunicate visible dimensions of an advertisement image to the server104 or dedicated billing system since the browser engine 108 isrequesting browser data associated with a current viewable space of thebrowser interface 111 (e.g., browser window).

For example, the browser engine 108, as part of a deterministicoperation, can inform the server 104 or other system that 120×300 pixelsout of 400×600 pixels of an advertisement image were visible in acurrent viewable space of a browser window. Depending on the implementedmodel, an associated advertising entity may or may not be charged forthe particular advertisement impression. The browser engine 108 can alsooperate to provide additional visibility or placement information to theserver 104, such as top left corner visible, lower left corner visible,etc.

As described above, a billing or other system can use the informationprovided by the browser engine 108 to generate an advertisement chargebased in part on terms of a given contract or other negotiation with anadvertiser. Alternatively, a billing or other system can use informationprovided by the server 104 to generate an advertisement charge based inpart on terms of a given contract or other negotiation with anadvertiser since the server 104 has knowledge of browser data that wasrequested and downloaded by the browser engine 108.

As an example, according to one advertising model, an advertising chargecan issue under the following circumstances: 1) if the area in thecurrent viewable space of the browser window is greater than or equal toX % then consider it visible (e.g., X % could be 50% or some otherquantification); 2) charge based in part on the percentage of anadvertisement that was visible in the current viewable space of thebrowser window (e.g., if 40% of an ad is visible, then issue a charge of40% of the contracted rate; 3) if multiple partial dimensions were sentby the browser engine 108 (e.g., the user scrolled a little bit whichmay have required additional download requests for the additional data,but not enough to expose the rest of an ad) then use the largest set ofdimensions for billing purposes; 4) charge based in part on preferenceof certain viewable locations (e.g., top left must be visible to bebillable since that is where my logo is, regardless of % visible, etc.);5) only charge for advertisements that were 100% visible in the viewablespace of the browser window; 6) no charge for advertisements that werenot included in the viewable space of the browser window; 7) providediscounts based on ad visibility (e.g., no charge for the first Nimpressions that are not visible or based on some % of a visible ad);etc.

As described briefly above, the server 104, in addition to otherfunctionality, can operate to dynamically provide web pages forconsumption by the browser engine 108 through the network 106, but isnot so limited. The server 104 can also operate to generate fixedcontent web pages for consumption by the browser engine 108. Dynamicallygenerated, fixed, and other web page types can include content and otherdata, such as video, audio, images, advertising data, and otherinformation. In one embodiment, an advertisement server or ad server(e.g., local and/or remote server(s)) can be used to communicateadvertisement images and other advertisement content that the server 104can use to dynamically generate web page data for a targeted user.

The ad server can be used to provide advertisement data which is to belocated on specific portions or pixel locations of a fixed web page(e.g., upper left, upper center, pixels xx-xx, x-xx, etc.) The server104 can use script generator component 116 which includes scriptingfeatures to dynamically provide web page data, including advertisementimages, or portions thereof, to the browser engine 108. As describedabove, a request for web page data can include additional information,including information associated with a current viewable space of thebrowser display or interface, that can be used to quantify web page datato be included as part of a download package. Moreover, the browserengine 108 can communicate quantification data to the server or othercomponent(s), wherein the quantification data can be used to monetizeadvertising and other business entities associated with the browser datadownloaded and/or displayed in the browser interface 111. For example,the browser engine 108 can issue quantification data (e.g., a tollevent, etc.) that can be used to identify that designated data (e.g.,advertising data or portions thereof, etc.) was requested, downloaded,and/or displayed in the current viewable space of the browser interface111.

In another embodiment, upon receiving a download request for web pagedata from the browser engine 108, the server 104 can operate to examineimage sizes associated with a requested web page using server-sidescripting features of the script generator component 116. The server 104can use features of the script generator component 116 to provide anentire image or a portion of an image based in part on the configurationof the browser engine and/or display. For example, the server 104 canoperate to examine an image size of an image associated with a requestedweb page using one or more active server page (ASP) server side scriptsfor a dynamically generated web page.

Moreover, the browser engine 108 and the server 104 can negotiate anefficient partial image download optimizing the communication bandwidth.For example, assume an image is 1000×1000 pixels. The browser engine 108informs the server 104 that is can only display 100×100 pixels, and theuser has scrolled to the middle of a web page image. The browser engine108 can issue a fetch request to the server 104 for the (x, y)coordinates of the image at (400,400 to 500,400)×(400,500 to 500,500).The server 104 can then perform a scatter read or other read operationon the image to provide the requested bits or pixel data. As describedabove, the browser engine 108 can operate to cache and append imageportions from the local cache 114 to generate a total image. In oneembodiment, the browser engine 108 can operate to request an image, andthen issue a TCP reset to the connection when enough of the image byteshave been downloaded to fill a current viewable space.

Components of system 100 described above can be implemented as part ofnetworked, distributed, and/or other computer-implemented andcommunication environments. Moreover, the browsing functionality can beused in conjunction with a desktop computer, laptop, smart phone,personal data assistant (PDA), ultra-mobile personal computer, and/orother computing or communication devices to provide browsing and otherdata. The system 100 can be employed in a variety ofcomputing/communication environments. For example, the system 100 canused with devices/systems having networking, security, and othercommunication components configured to provide communicationfunctionality with other computing and/or communication devices.

While a communication architecture is shown in FIG. 1, functionality ofvarious components can be also combined or further divided. For example,while one server 104 is shown, the system 100 can include a plurality ofservers. Moreover, the server 104 can communicate with other servers,such as ad servers, content servers, search engine servers, and otherserving devices to generate dynamic and static web page data.Additionally, the various embodiments described herein can be used witha number of applications, systems, and other devices and are not limitedto any particular implementation or architecture. Moreover, certaincomponents and functionalities can be implemented in hardware and/orsoftware. While certain embodiments include software implementations,they are not so limited and also encompass hardware, or mixedhardware/software solutions. Also, while certain functionality has beendescribed herein, the embodiments are not so limited and can includemore or different features and/or other functionality. Accordingly, theembodiments and examples described herein are not intended to belimiting and other embodiments are available.

FIG. 2 is a flow diagram illustrating an exemplary process of browsingoperations using a communication network. For example, the browsingoperations can be used to request web pages and web data based in parton a current viewable space of a browser interface. Components of FIG. 1are used in describing the flow diagram, but the described embodimentsare not so limited. At 200, a user uses a browser to request a web pagefrom server 104 or some other server. For example, the user can enter aURL or select a link from some other web page or location. Assume forthis example, that the user has configured the browser engine 108 toemploy the data miser feature to limit requests for browser data to acurrent viewable space of a browser interface 111 (e.g., see FIGS.4A-4C).

As part of the request, the browser engine 108 can also communicateinformation associated with the current viewable space of the browserinterface 111 to the server 104, but is not so limited. For example, therequest can include one or more of a browser configuration, displayresolution, pixel count, pixel configuration, and/or a physical size ofthe display. In an alternative embodiment, based in part on the requestand viewable space information, the server 104 can operate to provideimage size and other information that the browser engine 108 can use indetermining which image data to request and/or substitute for a web pageimage to be displayed in the device display 110.

In another embodiment the browser engine 108, in conjunction with thelayout engine 109, can operate to determine the visible space availableto display the image and only makes the <IMG> tag request if it meetsthe quality of service (QOS) attributes (if provided). At 202, thebrowser engine 108 receives the viewable web page data from the server104 based in part on the current viewable space of the browser interface111. For example, device requests can include: 1) providing screenresolution and/or other information to the server 104 or othercomponent(s) when requesting a page or portions thereof; 2) all displaydata; 3) data that fits on a requested page; and/or 4) image(s) fromserver 104 or other component(s) with attributes which informationprovided in conjunction with the attributes.

At 204, the browser engine 108 determines whether a defined portion ofan advertisement is included with the received web page data. Forexample, the defined portion of an advertisement can be an entire imagefile or a defined percentage of an image file. In an alternativeembodiment, the browser engine 108 can also determine if advertisementdata will be displayed sufficiently to be recognized by the user. Thebrowser engine 108 can also use scrolling, resizing, and otherinteractive information to determine if an advertisement is recognizableand/or request remaining data associated with a partial advertisementdownload. If a defined portion of the advertisement is not included withthe received web page data, at 206, the browser engine 108 can operateto load locally stored advertisement or other display data (includingleaving blank) in the designated location of the web page and notcommunicate quantification data, such as a toll event for example, thatcan be used to charge an associated advertising source. For example, thebrowser engine 108 can issue a toll event when a defined amount of anadvertisement is requested and/or displayed in the current viewablespace of the browser interface 111, wherein the toll event informs theserver 104 of the display for assessing an associated charge.

However, if a defined portion of the advertisement is included with thereceived web page data and/or displayed in the browser interface 111, at208, the browser engine 108 can operate to communicate thequantification data for charging an associated advertising source for anad impression based in part on the defined portion of the advertisementreceived and/or displayed. For example, the browser engine 108 canoperate to issue a toll event if an entire or defined portion of anadvertisement image was requested from the server 104 and/or displayedabove a certain display size that would be recognizable to a user basedin part on the associated device and/or browser configurations andcharacteristics. At 210, the browser engine 108 determines if theviewable space has changed.

For example, a user may have scrolled to another location or resized thebrowser interface 111 or used a zoom feature to change the renderedcontent size for the entire page. An embodiment can include a zoom infeature with settings 125%, 150%, 200%, etc. which show less contentoverall however rendering with larger attributes filling the samedisplay region. Additionally the zoom out feature with settings like75%, 65%, 50%, etc. showing more content overall in the display regionof the browser interface 111 (e.g., rendering with smaller attributes(fonts and images)). At 212, the browser engine 108 communicatesparameters associated with the viewable space change to the server 104if the viewable space has changed. Otherwise, the flow returns to 200.

FIG. 3 is a flow diagram illustrating an exemplary process of using adynamic layout engine and rendering by the browser application based inpart on data requests limited to visible object and other data. Asdescribed below, a user computing device includes a browser that canperform browsing and other operations as part of a networked,distributed, and/or other computing environment. In an embodiment, thebrowser can operate to request web page data based in part on a web pagerequest and/or a current viewable space of a browser interface. Forexample, the browser can operate to request web page data based in parton a current viewable space of a browser interface, wherein the currentviewable space of the browser interface can be based on one of a pixelresolution, browser configuration, interaction information, pixel count,a display size, and/or position of the browser application on thevirtual desktop or user interface shell, including the applicationstatus running full screen or only a portion of the visible screen.

At 300, the browser operates to request and/or load content 302associated with the current viewable space of the browser interface,wherein the content can include viewable bits of web page and otherdata, such as advertisement data for example. For example, a handhelddevice user may only be able to view a limited portion of a web page duein part to the size of the device and the display architecture. At 304,the browser, in conjunction with a layout engine or other component,operates to calculate the layout of the current viewable spaceassociated with the viewable bits, wherein the layout can include anumber of layout measuring objects 306 that are measured against thevisible portion of the display. At 308, the browser operates to generatea number of display structures 310 associated with the current viewablespace, wherein a number of display objects can be associated therewith.

At 312, the browser can operate, in conjunction with a display driver orother display device, to render the viewable bits (e.g., the displayobjects 310) as pixel data 314 in the current viewable space of thebrowser interface including the number of display objects. At 316, thebrowser can detect whether a user has interacted with the browserinterface and/or requested additional web page data according to anumber of user events 318. For example, a user may have scrolled to apreviously unviewable part of a web page, resized the browser interface,or typed in a different URL. These and other actions can drive anotherevaluation of the visible region and download from the remote sitecontent to provide additional display objects 310.

At 320, the browser can use scripts and other objects to further browseroperations and/or provide feedback and other information to othercomponents of the computing environment. For example, the browser canuse script information generated by a web server to determine if anadvertisement image should be downloaded or whether a readilyidentifiable logo, symbol, or other source identifier should be pulledfrom a local cache or other storage (local or remote) for display in animage placeholder.

Returning to 300, and as part of the operation(s) at 300, the browsercan also operate to load markup information at 322 and/or load highpriority object data at 324, such as visible images as well asoptionally those which reside just outside the visible or currentviewable space for example. As part of the operation at 322, the browsercan also operate to load content and/or markup 326. At 328, the browseroperates to determine an estimated layout 330 associated with theviewable space of the browser interface without having to download allthe image payloads, only the size (e.g., width, height, etc.) of theimages is necessary as well as information where the images should beplaced as provided by the web page designer for example. As shown inFIG. 3, operation 328 also follows the calculate layout operation at304.

At 324, the browser operates to load high priority object data, whichcan include content 332 associated with the high priority object data.At 334, the browser operates to load low priority object data, such asoff screen non-advertisement based images (e.g., those without a visiblequality of service (QOS) quotient in the associated markup) and at 336determines if further operations associated with the low priority objectdata should be avoided and/or postponed until some subsequent time.While a certain order and number of operations are described withrespect to FIGS. 2 and 3, the order and/or number of operations and/orcomponents can be modified and/or reconfigured according to a desiredimplementation. For example, operations can be selectively added,removed, rearranged, etc. according to a desired implementation.Accordingly, other embodiments are available.

FIGS. 4A-4C depict an exemplary browser interface 400 associated with abrowser which can be displayed on the display of a computing device. Forexample, a user can use a smart phone browser to browse the Internet bytyping in URLs or selecting web page links to access web page data. Asshown in FIG. 4A, the browser interface 400 includes a current viewablespace, shown generally by lasso 402, which includes viewable bits of arequested web page. As described above, the browser can operate to limitits data request to viewable bits associated with the current viewablespace of the browser interface 400 absent requesting unviewable bits ordata.

As part of its downloading operation associated with the request, thebrowser has received viewable bits of an advertisement 404 that are notcurrently recognizable to determine an advertising source by the user.As described above, in an alternative embodiment, the browser canoperate to substitute a recognizable advertisement or other image insuch a situation when requested bits of an image are unrecognizable orrequire further user interaction. Bandwidth may be allocatedinefficiently and download times may increase when an image isdesignated to be located in an off-screen or unviewable region of adisplay based in part on a web page layout design. In such a situation,a server-side script can be used to assist in request and downloadoperations. For example, a server-side script using ASP can include:

<imgsrc=“./ds/U0UARUA01UAU/Black_Friday_Promo_Flash_(—)120×600.jpg?ver=1”width=“%img.width%”;height=“%img.height%”; alt_ratio=“.50” alt_img=“temp.img”/>

The example script can execute on a server to dynamically populate theheight/width layout attributes to assist the browser with layout usingnull or secondary images until the designated location becomes visibleand/or recognizable. The <img> tag can also support “alt” attributessuch as alt_ratio=“.50”; alt_img=“temp.img” for example, which informsthe browser to substitute a locally stored image until the image isviewed at 50% of the original size. The alt_ratio is an example of aquality of service (QOS) attribute; amount of image visible on thedisplay as computed by the ratio of visible pixels vs. total imagepixels. Other QOS attributes can include: distance from edge, proximityto center of the page as well as define the number of pixel rows and/orcolumns (or combination thereof) which should be visible to create thebillable image fetch or toll event.

The ratio can be greater than or equal to the ratio; greater than, orconversely do not download if less than a certain %, or less than orequal to the QOS attribute etc. The browser can generate a billableevent when the user views the image at 50% or larger ratio and thebrowser can then fetch the advertisement image or a portion thereof. Theserver can then issue a billable charge for the billable event to anadvertising or other entity. In many current implementations,advertisers do not know that their image was actually rendered on thevisible portion of the display within the quality of service attributesdesired. If the data miser feature is enabled and the QOS attributesconfigured on the web page, the image shown by 404 would not have beendownloaded because it did not fit 50% or greater on the screen.

FIG. 4B illustrates the browser interface 400, wherein the user hasinteracted therewith to resize the browser interface 400 to obtain a newviewable space shown generally by lasso 406. The advertisement 404 isnow recognizable to the user and the browser can generate quantificationdata associated with a billable event for the advertisement impression.Moreover, the browser submitted an additional download request torequest the additional viewable bits shown in FIG. 4B as compared toFIG. 4A. Accordingly, the browser only needs to request the bitsassociated with the new content after the resizing since the browser hasoperated to store the previously requested viewable bits of FIG. 4A inmemory. It should be appreciated that the web page contains additionalHTML markup content below what is shown in the FIG. 4B, however imagesassociated with those sections of the page that are not visible will notbe downloaded because their QOS attributes will not be satisfied due inpart to the data miser features.

FIG. 4C illustrates the browser interface 400, wherein the user hasinteracted therewith to resize the browser interface 400 to obtain a newviewable space shown generally by lasso 408. The display ofadvertisement 404 is now complete. As described above, the browsersubmitted an additional download request to request the additionalviewable bits shown in FIG. 4C as compared to FIGS. 4A and 4B. Forexample, this could be the first time the entire image was downloadedfrom the server based in part on QOS attributes whereby the advertisercan choose all or nothing, or portions of the images to download basedupon the visible portion in the visible display region. Accordingly, thebrowser has limited its download request to the bits associated with thenew content after the resizing since the browser has operated to storethe previously requested viewable bits of FIGS. 4A and 4B.

FIG. 5 illustrates properties of the advertisement shown in of FIG. 4C.The properties of FIG. 5 include pixel information which can be detectedby the user device and/or server software. As shown, the size of theadvertisement 404 is nearly 30 Kbytes. However, about 5% of theadvertisement 404 is viewable in FIG. 4A. The entire web page downloadis about 64 Kbytes. Accordingly, the advertisement 404 would constitutethe majority of content downloaded if the browser were to request morethan the viewable bits of the viewable space. In FIG. 4A the majority ofbits downloaded from the remote servers would not have even been visibleon the screen unless the user had resized or scrolled the page as wasdescribed in FIGS. 4B and 4C.

FIG. 6 is an example networked environment 600, where variousembodiments may be implemented. Browsing operations can be implementedin such a networked environment 600. As shown in FIG. 6, the networkedenvironment includes a web server 602 which can operate to efficientlyprovide browser and other data using the network(s) 604, but is not solimited. In various embodiments, the networked environment 600 caninclude a topology of servers, clients, devices, Internet serviceproviders, communication media, and other network functionality. Thenetworked environment 600 can also include a static or dynamic topology.The term “client” can refer to a client application, device, and/orsystem. Each client device/system (e.g., smart phone 606, mobile phone608, laptop 610, desktop 612, etc.) can be configured with a browserwhich can interact with the web server 602, ad server 614, collaborationserver 616, and/or other devices and systems to browse the networkedenvironment 600. For example, a user can use a browser to request webpage data across the network(s) 604, wherein the web page data requestcan be limited to a current viewable space of a browser interface.

The networked environment 600 can include a secure network such as anenterprise network, an unsecure network such as a wireless open network,the Internet, or some other network or combination of networks. By wayof example, and not limitation, the networked environment 600 caninclude wired media such as a wired network or direct-wired connection,and/or wireless media such as acoustic, radio frequency (RF), infrared,and/or other wireless media. Many other configurations of computingdevices, applications, data sources, data distribution systems, etc. canbe employed to implement browsing and other functionality. Moreover, thenetworked environment 600 of FIG. 6 is included for illustrativepurposes. Embodiments are not limited to the example applications,modules, devices/systems, or processes described herein.

Exemplary Operating Environment

Referring now to FIG. 7, the following discussion is intended to providea brief, general description of a suitable computing environment inwhich embodiments of the invention may be implemented. While theinvention will be described in the general context of program modulesthat execute in conjunction with program modules that run on anoperating system on a personal computer, those skilled in the art willrecognize that the invention may also be implemented in combination withother types of computer systems and program modules.

Generally, program modules include routines, programs, components, datastructures, and other types of structures that perform particular tasksor implement particular abstract data types. Moreover, those skilled inthe art will appreciate that the invention may be practiced with othercomputer system configurations, including handheld devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers, and the like. Theinvention may also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

Referring now to FIG. 7, an illustrative operating environment forembodiments of the invention will be described. As shown in FIG. 7,computing device 2 comprises a general purpose desktop, laptop,handheld, tablet, or other type of computer capable of executing one ormore application programs. The computing device 2 includes at least onecentral processing unit 8 (“CPU”), a system memory 12, including randomaccess memory 18 (“RAM”), read-only memory (“ROM”) 20, and a system bus10 that couples the memory to the CPU 8. A basic input/output systemcontaining the basic routines that help to transfer information betweenelements within the computer, such as during startup, is stored in theROM 20.

The computing device 2 further includes a mass storage device 14 forstoring an operating system 26, application programs, and/or otherprogram modules. The mass storage device 14 is connected to the CPU 8through a mass storage controller (not shown) connected to the bus 10.The mass storage device 14 and its associated computer-readable mediaprovide non-volatile storage for the computing device 2. Although thedescription of computer-readable media contained herein refers to a massstorage device, such as a hard disk or CD-ROM drive, it should beappreciated by those skilled in the art that computer-readable media canbe any available media that can be accessed or utilized by the computingdevice 2.

By way of example, and not limitation, computer-readable media maycomprise computer storage media and communication media. Computerstorage media includes volatile and non-volatile, removable andnon-removable media implemented in any method or technology for storageof information such as computer-readable instructions, data structures,program modules or other data. Computer storage media includes, but isnot limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solidstate memory technology, CD-ROM, digital versatile disks (“DVD”), orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe computing device 2.

According to various embodiments, the computing device 2 may operate ina networked environment using logical connections to remote computersthrough a network 4, such as a local network, the Internet, etc. forexample. The computing device 2 may connect to the network 4 through anetwork interface unit 16 connected to the bus 10. It should beappreciated that the network interface unit 16 may also be utilized toconnect to other types of networks and remote computing systems. Thecomputing device 2 may also include an input/output controller 22 forreceiving and processing input from a number of input types, including akeyboard, mouse, keypad, pen, stylus, finger, speech-based, and/or othermeans. Other input means are available including combinations of variousinput means. Similarly, an input/output controller 22 may provide outputto a display, a printer, or other type of output device. Additionally, atouch screen or other digitized device can serve as an input and anoutput mechanism.

As mentioned briefly above, a number of program modules and data filesmay be stored in the mass storage device 14 and RAM 18 of the computingdevice 2, including an operating system 26 suitable for controlling theoperation of a networked personal computing device, such as the WINDOWSoperating systems from MICROSOFT CORPORATION of Redmond, Wash. forexample. The mass storage device 14 and RAM 18 may also store one ormore program modules. The mass storage device 14, or other storage, andthe RAM 18 may store other application programs or modules, includingbrowser application 24.

The browser application 24 may be a separate application or an integralmodule of a hosted service application that provides browsing servicesusing computing device 2. As discussed above, browser application 24 canoperate to request and/or download browser data associated with acurrent viewable space of a browser interface, but is not so limited.The browser application 24 can employ different methods to requestand/or download browser data associated with a current viewable space.The browser application 24 can also provide tolling data that can beused to monetize advertising and other business activities.

It should be appreciated that various embodiments of the presentinvention can be implemented (1) as a sequence of computer implementedacts or program modules running on a computing system and/or (2) asinterconnected machine logic circuits or circuit modules within thecomputing system. The implementation is a matter of choice dependent onthe performance requirements of a computing system implementing theinvention. Accordingly, logical operations including related algorithmscan be referred to variously as operations, structural devices, acts ormodules. It will be recognized by one skilled in the art that theseoperations, structural devices, acts and modules may be implemented insoftware, firmware, special purpose digital logic, and any combinationthereof without deviating from the spirit and scope of the presentinvention as recited within the claims set forth herein.

Although the invention has been described in connection with variousexemplary embodiments, those of ordinary skill in the art willunderstand that many modifications can be made thereto within the scopeof the claims that follow. Accordingly, it is not intended that thescope of the invention in any way be limited by the above description,but instead be determined entirely by reference to the claims thatfollow.

1. A device configured to: request viewable data as part of a browsingoperation, wherein the viewable data of the request is limited to acurrent viewable space of a browser interface; receive the viewable datafor display in the current viewable space of the browser interface;communicate quantification data if designated data is included with theviewable data based in part on the current viewable space of the browserinterface; and, use a locally stored advertisement image for adesignated portion of the current viewable space of the browserinterface if a defined portion of an advertisement image associated withthe viewable data is not included with the viewable data.
 2. The deviceof claim 1, further configured to communicate a billable event based inpart on a defined amount of the advertisement data.
 3. The device ofclaim 2, further configured to communicate the billable event if theadvertisement data is included with the viewable data and includes allof the advertisement data associated with an advertisement.
 4. Thedevice of claim 2, further configured to communicate the billable eventto charge an advertising source based in part on a defined percentage ofthe advertisement image.
 5. The device of claim 2, further configured tocommunicate the billable event to charge the advertising source for anadvertisement if the advertisement data includes one or more quality ofservice attributes associated with the advertisement.
 6. The device ofclaim 2, further configured to prevent communication of the billableevent if the advertisement data includes less than the defined amount ofthe advertisement data.
 7. The device of claim 1, further configured touse embedded information to monetize advertising revenue.
 8. The deviceof claim 1, further configured to communicate an event to assess apro-rated or other charge against an advertiser account based in part onwhether an advertisement was rendered in the current viewable space. 9.The device of claim 8, further configured to determine the currentviewable space based in part on one or more of a resolution, browserconfiguration, pixel count, and a display size.
 10. The device of claim1, further configured to determine if a change is made to the viewablespace of the browser interface and request additional browser dataassociated with the change.
 11. The device of claim 1, furtherconfigured to request additional browser data based in part on one of aninput location and an interface size.
 12. The device of claim 1 furtherconfigured to communicate information associated with the currentviewable space of the browser interface.
 13. The device of claim 1,further configured to use alternative advertisement data if the currentviewable space is insufficient to support display of the advertisementimage.
 14. A browser configured to: communicate a request for browserdata, wherein the request is associated with portions of a web page tobe displayed; receive the browser data limited to the portions of theweb page to be displayed; determine an advertising charge if a definedamount of an advertisement is included with viewable browser data; and,use a local advertisement image for a designated location of a browserwindow if the defined amount of the advertisement is not included withviewable browser data.
 15. The browser of claim 14, further configuredto communicate the advertising charge if an entire advertisement isdisplayed.
 16. The browser of claim 14, further configured to use one ormore of scrolling, resizing, and other interactive information todetermine if the advertisement is recognizable and request additionaldata associated with a partial advertisement download.
 17. A userinterface component comprising a browser application operable to browsea computing network, the browser application operable to: request webpage data as part of a browsing operation, wherein the request islimited to web page data associated with a current viewable space of abrowser window; display the web page data in the current viewable space;issue quantification data if a defined portion of an advertisement isdisplayed; and, insert a locally cached advertisement image in adesignated location of the browser window if a defined portion of theadvertisement is not included with viewable web page data.
 18. The userinterface component of claim 17, further configured to interact with adisplay subsystem to determine when images would have been renderedcompletely or partially outside the browser window.
 19. The userinterface component of claim 17, further configured to interact with adynamic layout engine based in part on data requests limited to visibleobject and other data.
 20. The user interface component of claim 17,configured to communicate an event as part of assessing a pro-rated orother charge against an advertiser account based in part on whether theadvertisement was rendered in the current viewable space.